package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.entity.OrderDetail;
import com.example.entity.ShoppingCart;

import java.util.List;

/**
 * <p>
 * 购物车 服务类
 * </p>
 *
 * @author czx
 * @since 2022-04-28
 */
public interface IShoppingCartService extends IService<ShoppingCart> {

    /**
     * 添加购物车
     *
     * @param shoppingCart 购物车
     * @return 购物车
     */
    ShoppingCart saveWithDishOrSetmeal(ShoppingCart shoppingCart);

    /**
     * 清空购物车
     *
     * @return 清空结果
     */
    boolean clean();

    /**
     * 数量 -1
     *
     * @param shoppingCart 购物车
     * @return 减一结果
     */
    boolean sub(ShoppingCart shoppingCart);

    /**
     * 根据用户id进行查询
     *
     * @param userId 用户id
     * @return 该用户的购物车列表信息
     */
    List<ShoppingCart> getByUserId(Long userId);

    /**
     * 将再来一单的数据加入到购物车
     *
     * @param orderDetailList 订单明细列表
     * @return 结果
     */
    boolean saveWithOrderDetail(List<OrderDetail> orderDetailList);
}
